package com.upbos.upm.cfg;

import com.upbos.data.core.Pagination;
import com.upbos.data.core.SingleDao;
import com.upbos.upm.entity.Cfg;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;


/**
 * <b>Application name：</b> CfgDao.java <br>
 * <b>Application describing: 系统参数dao</b> <br>
 * <b>Copyright：</b> Copyright &copy; 2015-2020 myzh.com。<br>
 * <b>Company：</b> myzh.com <br>
 * <b>Date：</b> 2019年04月19日 16:05 <br>
 * <b>author：</b> <a href="mailto:wangjz@miyzh.com"> Jason </a>
 * <b>version：</b>V5.0.0
 */
@Repository
public class CfgDao {

    @Resource
    private SingleDao singleDao;

    /**
     * 查询系统参数
     *
     * @param pageNo     当前页
     * @param pageSize   页数
     * @param categoryId 分类ID
     * @param name       参数名称
     * @return 参数列表
     */
    public Pagination listCfg(Integer pageNo, Integer pageSize, Long categoryId, String name) {
        Cfg cfg = new Cfg();
        cfg.setCategoryId(categoryId);
        cfg.setName(name);
        return singleDao.queryPaginationWithTotal(pageNo, pageSize, "CfgDaoMapper.listCfg", cfg);
    }

    /**
     * 获取参数对象
     *
     * @param key 参数标识
     * @return 参数对象
     */
    public Cfg getCfg(String key) {
        return singleDao.queryOne("CfgDaoMapper.getCfg", key);
    }


    /**
     * 获取参数标识相同的参数个数
     *
     * @param cfg 查询条件
     * @return 参数个数
     */
    @CacheEvict
    public int getCfgCount(Cfg cfg) {
        return singleDao.queryOne("CfgDaoMapper.getCfgCount", cfg);
    }


    /**
     * 插入参数
     *
     * @param cfg 参数对象
     */
    public void insertCfg(Cfg cfg) {
        singleDao.insert(cfg);
    }

    /**
     * 更新参数
     *
     * @param cfg
     */
    public void updateCfg(Cfg cfg) {
        singleDao.updateById(cfg);
    }

    /**
     * 删除参数
     *
     * @param cfg
     */
    public void deleteCfg(Cfg cfg) {
        singleDao.deleteById(cfg);
    }
}
